#pragma once

// General Application Interface
//
// interface Application {
//    Init(argc,argv); - one time initialization function
//    Run();           - Enters the default main runloop.
//

namespace one_rag {
  namespace App {
    namespace impl {

      struct ApplicationBase : Object
      {
      };

    }
  }
}

#include "GLUT/GlutApp.h" // linux, mac, win32
// X11                                  // linux, mac
#include "GTK/Gtk2App.h" // linux
// Cocoa                             // mac
#include "Win32/Win32App.h" // win32

namespace one_rag {
  namespace App {

    typedef impl::ApplicationDefault Application;

  }
}


